package com.课上案例练习.线程.等待唤醒机制.线程等待.两个线程通信;

/**
 * 不使用锁
 * 产生效果：
 *世界那么大
 * 世我想看看
 * 我想看看
 * 我想看看
 * 界那么大
 * 世界那么大
 *
 * 原因是：
 * 多个线程在执行各自的任务时，执行到一半，cpu的时间轮转片到了
 * 线程1，此时线程1执行到"世界那么大世"，cpu时间片到了，此时线程2执行到"我想看看"，
 * 所以保证所以的线程能执行完，加上同步锁
 *
 *
 */
 public class Show1 implements Runnable {
    int flag = 1;//标识

     public Show1(int flag) {
         this.flag = flag;
     }

     @Override
     public void run() {
         if(flag==1){
             for (int i = 0; i < 3; i++) {
                 System.out.print("我");
                 System.out.print("想");
                 System.out.print("看");
                 System.out.print("看");
                 System.out.println();
             }
         }
         else if(flag==0){
             for (int i = 0; i < 3; i++) {
                 System.out.print("世");
                 System.out.print("界");
                 System.out.print("那");
                 System.out.print("么");
                 System.out.print("大");
                 System.out.println();
             }
         }
     }
}
